package com.demo.mykotlin.activity

import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import com.demo.mykotlin.R
import kotlinx.android.synthetic.main.activity_main.*

/**
 * 主页面
 */
class MainActivity : BaseActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //设置文本控件显示文本（R.id.textTv）
        textTv.text = "你好世界"

        //按钮1-使用函数式API方式来注册监听器
        //设置按钮控件监听事件并修改控件显示文本
        buttonBtn.setOnClickListener {
            buttonBtn.text = getString(R.string.bottonText)
            toast("你点击了按钮1！")
        }

        //按钮2-实现接口方式来注册监听
        buttonBtn2.setOnClickListener(this)
        button3.setOnClickListener(this)
        imageView.setOnClickListener(this)
        button5.setOnClickListener(this)
        button6.setOnClickListener(this)
        button7.setOnClickListener(this)
        button8.setOnClickListener(this)
    }

    /**
     * 全局监听事件
     */
    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.buttonBtn2 -> {
                buttonBtn2.text = "接口式监听"
                toast("你点击了按钮2！")
            }
            R.id.button3 -> {
                val inputText = editText.text.toString().trim()
                toast("输入的内容是：${inputText}")
            }
            //加载本地图片资源
            R.id.imageView -> {
                imageView.setImageResource(R.drawable.ic_launcher_foreground)
            }
            //进度条显示与隐藏
            R.id.button5 -> {
                progressBar.visibility =
                    if (progressBar.visibility == View.VISIBLE) View.GONE else View.VISIBLE
            }
            //进度递增
            R.id.button6 -> {
                progressBar2.progress += 10
            }
            //弹窗
            R.id.button7 -> {
                AlertDialog.Builder(this).apply {
                    setTitle("This is Dialog")
                    setMessage("Something important.")
                    setCancelable(false)
                    setPositiveButton("Ok") { _, _ ->
                    }
                    setNegativeButton("Cancel") { _, _ ->
                    }
                    show()
                }
            }
            R.id.button8 -> run {
                val intent = Intent(this, SecondActivity::class.java)
                startActivity(intent);
            }
        }
    }

    /**
     * 吐司工具
     */
    private fun toast(msg: String) {
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show()
    }
}
